package com.cn.wxwinnie.DesignPattern.singleton;

import java.util.Date;

/**
 * 私有构造函数版本的单例。
 * 我们经常出现这样的代码 User user = new User(); 
 * 其实这里的new User()调用的是User类中的共有的构造函数。
 * 当然这种无参数的构造函数在没有显示的写出来的话，java会自动的创建一个，如果显示的现出来的话，就会调用显示写出来的这一个。
 * 但是如果将这个无参构造方法写成私有的，那么外部就无法通过调用无参构造方法来初始化这个类的对象了。就只能使用其他的办法了。
 * 这个类中通过 private static final ASingleton2 as = new ASingleton2() 创建了一个对象。而且由于这个属性是私有static的，
 * 也就是这是一个类变量，类变量的话，也是在类被加载的时候初始化的。而且是final的，也就只能被初始化一次。
 * 
 * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com
 * 
 * @version 创建时间：2014年3月19日 上午10:44:24
 * 
 */
public class ASingleton2 {
	private static final ASingleton2 as = new ASingleton2();
	private static final Date d = new Date();

	// 此处写成私有方法可以防止用户在外面用new方法来产生。
	private ASingleton2() {
	}

	public synchronized static ASingleton2 getInstance() {
		return as;
	}

}
